package com.mbc.service;


import com.mbc.dto.DetailsActivityInfoDTO;
import com.mbc.dto.InserTLoveBaseActivityDTO;
import com.mbc.vo.DetailsActivityInfoVO;
import com.mbc.vo.SimpleActivityVO;

import java.util.ArrayList;

/**
 * <p>
 * 爱心基地活动表 服务类
 * </p>
 *
 * @author suimeng
 * @since 2024-04-19
 */
public interface LoveBaseActivityService {

    /**
     * 新增爱心基地活动
     *
     * @param userId                    用户 ID
     * @param inserTLoveBaseActivityDTO inser tlove base 活动 DTO
     * @return boolean
     */
    boolean insertLoveActivity(Integer userId, InserTLoveBaseActivityDTO inserTLoveBaseActivityDTO);

    /**
     * 分页查询所有活动
     *
     * @return {@link ArrayList}<{@link SimpleActivityVO}>
     */
    ArrayList<SimpleActivityVO> getBySimpleActivity(Integer page,Integer size);

    /**
     * 根据活动id查询爱心基地活动详细信息
     *
     * @param activityId 活动 ID
     * @return {@link DetailsActivityInfoVO}
     */
    DetailsActivityInfoVO getDetailsActivityInfo(Integer activityId);


    /**
     * 根据活动id或名称查询爱心基地活动信息
     *
     * @param detailsActivityInfoDTO 详细信息 活动信息 DTO
     * @return {@link ArrayList}<{@link SimpleActivityVO}>
     */
    ArrayList<SimpleActivityVO> getByIdSimpleActivity(DetailsActivityInfoDTO detailsActivityInfoDTO);

    /**
     * 新增爱心活动浏览量
     *
     * @param activityId 活动 ID
     * @return boolean
     */
    boolean updateViewNumber(Integer activityId);

    /**
     * 新增爱心活动点赞量
     *
     * @param activityId 活动 ID
     * @return boolean
     */
    boolean updateLikesNumber(Integer activityId);

    /**
     * 更新爱心活动参与人数
     *
     * @param activityId 活动 ID
     * @return boolean
     */
    boolean updateParticipationNumber(Integer activityId);
}
